TensorFlow Probability 及其 R 包装器 tfprobability 提供了马尔可夫链蒙特卡罗 (MCMC) 方法,这些方法已在本博客的近期多篇文章中使用。这些文章针对的是已经熟悉该方法和术语本身的用户,而主要对深度学习感兴趣的读者不一定熟悉。在这里,我们试图弥补不足,介绍汉密尔顿蒙特卡罗 (HMC) 以及一些经常听到的伴随它的“流行语”,始终努力记住这一切“为了”什么。
深度学习模型 - 来自 Google AI Research 的 BERT - 在各种自然语言处理 (NLP) 任务中取得了最先进的成果。在本教程中,我们将展示如何使用 Keras 从 R 加载和训练 BERT 模型。
So, how come we can use TensorFlow from R?
您是否曾经想过为什么可以从 R 调用 TensorFlow(通常称为 Python 框架)?如果没有 - 那应该是这样的,因为 R 包 keras 和 tensorflow 旨在使这个过程对用户尽可能透明。但要让它们成为这些有用的精灵,首先必须有人驯服 Python。
在图像分割中,图像的每个像素都被分配一个类别。根据应用,类别可以是不同的细胞类型;或者任务可以是二进制的,如“癌细胞是或否?”。无论应用领域如何,首选的既定神经网络架构都是 U-Net。在这篇文章中,我们展示了如何预处理数据并在 Kaggle Carvana 图像分割数据上训练 U-Net 模型。
Modeling censored data with tfprobability
在这篇文章中,我们使用 tfprobability(TensorFlow Probability 的 R 接口)来建模审查数据。同样,这个阐述的灵感来自 Richard McElreath 的《Statistical Rethinking》中对这个主题的处理。不过,我们建模的不是可爱的猫,而是来自冷酷技术世界的非物质实体:这篇文章探讨了 CRAN 包检查的持续时间,这是 Max Kuhn 的 parsnip 附带的数据集。
TensorFlow feature columns: Transforming your data recipes-style
TensorFlow 特征列提供了有用的功能,可用于预处理分类数据和链接转换,例如分桶或特征交叉。从 R 中,我们以流行的“配方”风格使用它们,创建并随后完善特征规范。在这篇文章中,我们展示了如何使用特征规范释放认知资源并让您专注于真正想要完成的事情。更重要的是,由于其优雅,特征规范代码读起来很好,编写起来也很有趣。
Dynamic linear models with tfprobability
之前的文章介绍了 tfprobability(TensorFlow Probability 的 R 接口),重点介绍了深度神经网络的增强功能(例如,引入贝叶斯不确定性估计)以及使用汉密尔顿蒙特卡罗拟合分层模型。这次,我们将展示如何使用动态线性模型 (DLM) 拟合时间序列,从而得到后验预测以及来自卡尔曼滤波器的平滑和滤波估计。
Adding uncertainty estimates to Keras models with tfprobability
截至目前,还没有主流方法可以从神经网络中获取不确定性估计。只能说,通常情况下,方法往往是贝叶斯主义的,涉及某种方式将先验置于模型权重之上。这也适用于本文中介绍的方法:我们展示了如何使用 tfprobability(TensorFlow Probability 的 R 接口)以优雅且概念上合理的方式将不确定性估计添加到 Keras 模型中。
Hierarchical partial pooling, continued: Varying slopes models with TensorFlow Probability
这篇文章以我们最近介绍的 tfprobability(TensorFlow Probability 的 R 包装器)进行多级建模为基础。我们展示了如何汇集平均值(“截距”)和关系(“斜率”),从而使模型能够以更广泛的方式从数据中学习。同样,我们使用了 Richard McElreath 的“Statistical Rethinking”中的一个例子;术语以及我们呈现这个主题的方式很大程度上归功于这本书。
Tadpoles on TensorFlow: Hierarchical partial pooling with tfprobability
这篇文章首次介绍了使用 tfprobability(TensorFlow Probability (TFP) 的 R 接口)进行 MCMC 建模。我们的示例是一个描述蝌蚪死亡率的多级模型,读者可能从 Richard McElreath 的精彩作品“统计反思”中了解到这一点。
Experimenting with autoregressive flows in TensorFlow Probability
继最近对 TensorFlow Probability (TFP) 中的双射函数的介绍之后,这篇文章将自回归引入了讨论。通过新的 R 包 tfprobability 使用 TFP,我们研究了掩蔽自回归流 (MAF) 的实现,并将其用于两个不同的数据集。
Auto-Keras: Tuning-free deep learning from R
在深度学习中,架构设计和超参数调整有时会带来巨大挑战。使用 Auto-Keras,这些都不是必需的:我们启动搜索过程并提取性能最佳的模型。这篇文章介绍了 Auto-Keras 在著名的 MNIST 数据集上的实际应用。
Getting into the flow: Bijectors in TensorFlow Probability
规范化流是无监督深度学习中鲜为人知但却令人着迷且成功的架构之一。在这篇文章中,我们使用 tfprobability(TensorFlow Probability 的 R 包装器)对流程进行了基本介绍。后续文章将在此基础上进行构建,在更复杂的数据上使用更复杂的流程。
Math, code, concepts: A third road to deep learning
并非每个想进入深度学习的人都具有深厚的数学或编程背景。这篇文章详细阐述了一种概念驱动、基于抽象的方法来学习它的全部内容。
Audio classification with Keras: Looking closer at the non-deep learning parts
有时,深度学习被视为(并受到欢迎)避免繁琐的数据预处理的一种方式。然而,在某些情况下,各种预处理不仅有助于改善预测,而且本身就是一个引人入胜的话题。音频分类就是这样一个例子。在这篇文章中,我们在此博客的上一篇文章的基础上进行构建,这次重点介绍一些非深度学习背景。然后,我们将所解释的概念链接到近期发布的更新的 TensorFlow 代码。
Discrete Representation Learning with VQ-VAE and TensorFlow Probability
在考虑变分自动编码器 (VAE) 时,我们通常会将先验描绘为各向同性的高斯。但这绝不是必需的。van den Oord 等人的“神经离散表示学习”中描述的矢量量化变分自动编码器 (VQ-VAE) 具有离散潜在空间,可以学习令人印象深刻的简洁潜在表示。在这篇文章中,我们结合了 Keras、TensorFlow 和 TensorFlow Probability 的元素,看看我们是否可以生成与 Kuzushiji-MNIST 中的字母相似的令人信服的字母。
Getting started with TensorFlow Probability from R
TensorFlow Probability 提供了广泛的功能,从概率网络层上的分布到概率推理。它与核心 TensorFlow 和 (TensorFlow) Keras 无缝协作。在这篇文章中,我们简要介绍了分布层,然后使用它在变分自动编码器中采样和计算概率。
如上一篇文章所示,命名和定位图像中的单个对象是一项可以直接完成的任务。然而,这与一般的物体检测不同——一次命名和定位多个物体,没有关于应该检测多少个物体的先验信息。在这篇文章中,我们解释了编写一个基本的单次物体检测器所涉及的步骤:与 SSD(单次多框检测器)不同,但经过简化,设计不是为了获得最佳性能,而是为了易于理解。